var categoriesApp = function(timeToLoad) {
	this.busyTime = timeToLoad || 1000;
};


// Clase que hace el manejo de visualzación de los productos y categorias y el detalle del roducto cuando es para ADICION
categoriesApp.prototype = function() {
	
	// Busca la categorias, los productos en el servidor
     var initCategories = function(){
		 sData.getDataForCategories(index.userData, index.userData.idRestaurant, _handleDataForCat);
	},
    
    // Despliega las categorias en la página
    _handleDataForCat = function (data, success){
			if(!success){
				//alert("no se pudo recuperar el menu");
			}else{
				$categoriesList = $('#categoriesList');
				$categoriesButtons = $('#listBottonCategories');
				$categoriesButtons.empty();
				$categoriesList.empty();
				index.categories = data;
				
				for (var i in data){
					var category = data[i];
					//$categories.append('<li id="' + category.id + '"><a href="#categoryMenu" data-transition="slide"><img src="/img/tenedor.png"><h2>' + category.label + '</h2></a></li>');
					//$categoriesList.append('<li id="' + category.Id + '"><a href="#products" data-transition="slide"><img src="/img/icons/cutlery6_128.png" alt="comida"><h2>' + category.Nombre + '</h2><span class="ui-li-count">'+category.items+'</span></a></li>');
					$categoriesButtons.append('<a href="#productsPage" id='+category.id
						+' class="ui-btn ui-shadow ui-corner-all" data-transition="slide"><div><table><tr><td>'
						+ '<img id="listCategories'+ i +index.userData.idRestaurante+'-'+category.id+'" '
						//+ 'src="' + IPSERVIDOR + SERVICES+'/getCategoryImage/'+index.userData.idRestaurante+'/'+category.id
						+'" width="80" height="80" alt="'+category.nombre+'"></td><td>'
						+'<table><tr><td><p style="text-indent:20px;">'+category.nombre + '</p>'
						+'</td></tr><tr><td><p <p style="font-size:smaller; text-indent:30px;">'+category.descripcion+'<p></td></tr></table>'
						+'</td></tr></table></div></a>');
					
					var item = $('#' + category.id, $categoriesButtons);
					item.data('category', category);
					
				}
				
				for (var i in data){
					var category = data[i];
					loadImage('getCategoryImage',index.userData.idRestaurante, category.id, 'listCategories' + i);
				}
			}
		//$('#categoriesList').listview('refresh');
	},
	
	showProductsByCategory = function(categoryForDetails){
		
		if(categoryForDetails != null){
			sData.getDataForProducts(index.userData, categoryForDetails, index.userData.idRestaurante, _handleDataForProduct);
		}
	},
	
	
	// Despliega los productos en la página
	_handleDataForProduct = function(data, success){	
		var currentCategory = data;
		index.products = data;
		//$productsList = $("#productsList");
		$productsListButtons =  $("#listBottonProducts");
		$productsListButtons.html('');
		//$productsList.empty();
		if(currentCategory != null){
			for(var i in data){
				var product = data[i];
				//var strFormat = '<li id="' + product.Id + '">';
				var strFormat = '';
				//strFormat += '<a href="#productDetail" id='+product.Id+' data-transition="slide"><img src="/img/tenedor.png" alt="France" class="ui-li-icon ui-corner-none">';
				//strFormat += '<div><table width="100%" ><tr><td><h2>' + product.Nombre + '</h2></td><td align="right">'; 
				strFormat += '<a href="#productDetailPage" id='+product.id+' class="ui-btn ui-shadow ui-corner-all" data-transition="slide">';
				strFormat += '<div><table width="100%"><tr><td width="80" class="left-align">'
					+'<img id="listProducts'+ i + index.userData.idRestaurante+'-'+product.id
					//+'src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+index.userData.idRestaurante+'/'+product.id
					+'" width="80" height="80" alt="'+product.nombre+'"></td>';
				strFormat += '<td><table><tr><td class="left-align">' + product.nombre + '</td></tr>'
				+'<tr><td><p style="font-size:smaller;" class="left-align">'+ product.descripcion +'<p></td></tr></table><td align="left" width="100" class="text-red"><table>'; 
				for(var j in product.tamanios){
					precioItem = product.tamanios[j];
					var precioStr = '<tr>'
					if(precioItem.descripcion == ''){
						precioStr = '<td>Precio. </td><td>$' + precioItem.precio + '</td>';
					}else{
						precioStr = '<td>' + precioItem.descripcion + '</td><td>$' + precioItem.precio + '</td>';
					}
					strFormat += precioStr +'</tr>';
					
				}
				strFormat += '</table></td><td width=50><img src="img/icons/add17_32.png"></td></tr></table></div></a>';
				//$productsList.append(strFormat);
				$productsListButtons.append(strFormat)
				var item = $('#' + product.id, $productsListButtons);
				item.data('product', product);
				//$productsList.append('<li id="' + product.Id + '"><a href="#" data-transition="slide"><img src="/img/tenedor.png" alt="France" class="ui-li-icon ui-corner-none"><div><table width="100%"><tr><td><h2>' + product.Nombre + '</h2></td><td align="right">$10 Ch.<br/>$20 Med.</td></tr></table></div></a></li>');
			}
			
			for (var i in data){
				var product = data[i];
				loadImage('getProductImage',index.userData.idRestaurante, product.id,'listProducts' + i);
			}
			//$productsList.listview('refresh');
		}
	},
	
	// Despliega el detalle del producto con sus ingredientes, variaciones y los combos de las medidas
	_handleDataForProductDetail = function(data, mesaSelect, success){
		var productForDetails = data;
		if(data != null){
			// Llenado de la descripcion del producto
			$productDetail = $('#productDetailDiv');
			$('#productDetailDiv #nombreProducto').html('<p style="text-indent:20px;">' + productForDetails.nombre + '</p>');
			$('#productDetailDiv #descripcionProducto').html('<p style="text-indent:30px;">' + productForDetails.descripcion + '</p>');
			var str = '<table width="100%"><tr><td class="center text-red">';
			for(var j in productForDetails.tamanios){
					precioItem = productForDetails.tamanios[j];
					if(precioItem.descripcion == ''){
						str += 'Precio. $ ' + precioItem.precio + '&nbsp;&nbsp;&nbsp;';
					}else{
						str += precioItem.descripcion + ' $ ' + precioItem.precio + '&nbsp;&nbsp;&nbsp;';
					}
					
				}
			//str += '</td><td align="right"><a class="ui-btn ui-shadow ui-corner-all ui-icon-edit ui-btn-icon-notext"></a></td><td></td></tr></table>';
			$('#productDetailDiv #textPrecios').html(str);
			
			// llenado de variaciones
			$productDetailVar = $('#spanVariaciones');
			$productDetailVar.empty();
			var strVarIni = '<div data-role="collapsible"><h4>Variaciones</h4>';
			strVarIni += '<p><fieldset data-role="controlgroup" id="fieldsetVar">';
			var strRadios = '';
			for(var k in productForDetails.variaciones){
				variacionItem = productForDetails.variaciones[k];
				var str = '';
				str = '<input type="radio" name="radio-var" id="radio-var'+variacionItem.descripcion+'"';
				str += '><label for="radio-var'+variacionItem.descripcion+'">'+variacionItem.descripcion+'</label>';
				strRadios += str;
			}
			
			// si el listado de variaciones no es vació se agrega una variación que es default
			if(productForDetails.variaciones != 0){
				var str = '';
				str = '<input type="radio" name="radio-var" id="radio-var'+0+'"';
				str += ' checked="checked"';
				str += '><label for="radio-var'+0+'">default</label>';
				$productDetailVar.append(strVarIni +  str + strRadios + '</fieldset></p></div>');
				$productDetailVar.trigger('create');
			}	
			 
			// llenado de los ingredientes
			$productDetailIng = $('#spanIng');
			$productDetailIng.empty();
			var strIngIni = '<div data-role="collapsible"><h4>Ingredientes</h4>';
			strIngIni += '<p><fieldset data-role="controlgroup" id="fieldsetIng">';
			var strRadios = '';
			for(var l in productForDetails.ingredientes){
				ingredienteItem = productForDetails.ingredientes[l];
				var str = '';
				str = '<input type="checkbox" name="checkbox_ing" data-mini="true" id="checkbox-ing'+ingredienteItem.descripcion+'"';
				if(ingredienteItem.selected){
					str += ' checked="checked"';
				}
				str += '><label for="checkbox-ing'+ingredienteItem.descripcion+'">'+ingredienteItem.descripcion+'</label>';
				strRadios += str;
				
			}
			if(productForDetails.ingredientes != 0){
				$productDetailIng.append(strIngIni + strRadios + '</fieldset></p><p style="font-size:smaller;">*Los ingredientes se pueden quitar o poner según la preferencia del usuario.</p></div>');
				$productDetailIng.trigger('create');
			}				
			
			// llenado de los tamaños
			$productSizes = $('#sizesProduct');
			$productSizes.empty();
			var strSizes = '<table><tr>';
			var sizeStr = '';
			for(var l in productForDetails.tamanios){
				tamanio = productForDetails.tamanios[l];
				if(tamanio.descripcion == ''){
					sizeStr += '<td width="250px"><form><div class="ui-field-contain"><label for="select-native'+tamanio.descripcion+'">Cantidad.';
				}else{
					sizeStr += '<td width="160px"><form><div class="ui-field-contain"><label for="select-native'+tamanio.descripcion+'">' + tamanio.descripcion;
				}
					sizeStr += '</label><select name="select-native'+tamanio.descripcion+'"'
					+' id="select-native'+tamanio.descripcion+'" data-mini="true">'
					+'<option value="0">0</option><option value="1">1</option><option value="2">2</option>'
					+'<option value="3">3</option><option value="4">4</option>'
					+'<option value="5">5</option><option value="6">6</option>'
					+'<option value="7">7</option><option value="8">8</option>'
					+'<option value="9">9</option><option value="10">10</option></select>'
					+'</div></form></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td>';
				strSizes += sizeStr;
				sizeStr = '';
					
			}
			$productSizes.append(strSizes + '</tr></table>');
			
			if(mesaSelect == null){
				$('#agregarPlatillo').addClass('ui-state-disabled');
				$("#mesaOrdenText2").text('');
			}else{
				$('#agregarPlatillo').removeClass('ui-state-disabled');
				$("#mesaOrdenText2").text(mesaSelect.idMesa + ' - ' + mesaSelect.apiKey + ' ' + mesaSelect.descripcion);
			}
			$image = $('#imageProduct');
			$image.empty();
			$image.append('<img id="productDetail'+ index.userData.idRestaurante+'-'+productForDetails.id 
				//+ 'src="' + IPSERVIDOR + SERVICES+'/getProductImage/'+index.userData.idRestaurante+'/'+productForDetails.id
				+'" width="80" height="80" alt="'+productForDetails.nombre+'">');
			loadImage('getProductImage',index.userData.idRestaurante, productForDetails.id, 'productDetail');
			
			$("#productDetailPage .ui-content").trigger( "create" );
        }
	},
	
	
	// Despliega el detalle del producto seleccionado	
	showProductDetail = function(productForDetails, mesaSelect){
		if(productForDetails != null){
			//sData.getDataForProductDetail(index.userData, productForDetails, index.restaurant.idRestaurant, _handleDataForProductDetail);
			_handleDataForProductDetail(productForDetails, mesaSelect, true);
		}
	};
	

    
	return{
		initCategories:initCategories,
		showProductsByCategory:showProductsByCategory,
		showProductDetail:showProductDetail
	}
}();
